const { api } = require('../../utils/api.js');

Page({
  data: {
    isLogin: false,
    userInfo: null,
    loading: true,
    features: [
      {
        id: 'create',
        name: '创建挪车码',
        icon: '/images/create_qr.png'
      },
      {
        id: 'myqr',
        name: '我的挪车码',
        icon: '/images/my_qr.png'
      },
      {
        id: 'scan',
        name: '扫一扫挪车',
        icon: '/images/scan.png'
      }
    ]
  },
  
  onLoad: function() {
    this.checkLoginStatus();
  },
  
  onShow: function() {
    // 每次显示页面时都重新检查登录状态
    this.checkLoginStatus();
  },
  
  // 检查登录状态
  checkLoginStatus: function() {
    const token = wx.getStorageSync('token');
    console.log('检查登录状态，token:', token ? '存在' : '不存在');
    
    if (token) {
      console.log('设置登录状态为true');
      this.setData({ isLogin: true });
      this.fetchUserProfile();
    } else {
      console.log('设置登录状态为false');
      this.setData({ 
        isLogin: false,
        userInfo: null,
        loading: false
      });
    }
  },
  
  // 获取用户资料
  fetchUserProfile: function() {
    console.log('开始获取用户资料');
    api.getUserProfile().then(res => {
      console.log('获取用户资料成功:', res);
      if (res.status === 'success') {
        this.setData({
          userInfo: res.user,
          loading: false
        });
        console.log('用户信息已更新:', res.user);
      }
    }).catch(err => {
      console.error('获取用户资料失败', err);
      this.setData({ loading: false });
      
      // 如果是认证错误，清除token并重定向到登录页
      if (err.status === 'error' && err.message === '未授权') {
        console.log('认证失败，清除token');
        wx.removeStorageSync('token');
        this.setData({ 
          isLogin: false,
          userInfo: null
        });
      }
    });
  },
  
  // 跳转到登录页
  goToLogin: function() {
    wx.navigateTo({
      url: '/pages/login/login'
    });
  },
  
  // 创建挪车码
  goToCreateQR: function() {
    if (!this.data.isLogin) {
      wx.showModal({
        title: '需要登录',
        content: '创建挪车码需要登录账号，是否现在登录？',
        confirmText: '去登录',
        cancelText: '稍后再说',
        success: (res) => {
          if (res.confirm) {
            this.goToLogin();
          }
        }
      });
      return;
    }
    
    wx.navigateTo({
      url: '/pages/createQR/createQR'
    });
  },
  
  // 我的挪车码
  goToMyQR: function() {
    console.log('点击我的挪车码按钮');
    console.log('当前登录状态:', this.data.isLogin);
    
    if (!this.data.isLogin) {
      wx.showModal({
        title: '需要登录',
        content: '查看个人挪车码需要登录账号，是否现在登录？',
        confirmText: '去登录',
        cancelText: '稍后再说',
        success: (res) => {
          if (res.confirm) {
            this.goToLogin();
          }
        }
      });
      return;
    }
    
    console.log('用户已登录，开始跳转');
    // 使用switchTab跳转到tabbar页面
    wx.switchTab({
      url: '/pages/myQR/myQR',
      success: () => {
        console.log('跳转成功');
      },
      fail: (err) => {
        console.error('跳转失败:', err);
        wx.showToast({
          title: '跳转失败',
          icon: 'none'
        });
      }
    });
  },
  
  // 扫码 - 游客也可以体验
  scanQRCode: function() {
    console.log('开始扫码...');
    
    // 直接调用扫码API，简化逻辑
    wx.scanCode({
      scanType: ['qrCode'],
      success: (res) => {
        console.log('扫码成功，完整结果:', res);
        console.log('扫码数据类型:', typeof res.result);
        console.log('扫码数据长度:', res.result ? res.result.length : 'undefined');
        console.log('扫码数据内容:', res.result);
        
        // 详细分析扫码返回的所有字段
        console.log('扫码返回的所有字段:');
        for (let key in res) {
          console.log(`${key}:`, res[key], `(类型: ${typeof res[key]})`);
        }
        
        // 获取二维码数据
        let qrData = res.result;
        
        if (!qrData || qrData.trim() === '') {
          console.error('扫码结果为空');
          wx.showToast({
            title: '二维码内容为空',
            icon: 'none'
          });
          return;
        }
        
        console.log('获取到的二维码数据:', qrData);
        
        // 跳转到扫码结果页
        const targetUrl = `/pages/scanResult/scanResult?qr_data=${encodeURIComponent(qrData)}`;
        console.log('目标跳转URL:', targetUrl);
        
        wx.navigateTo({
          url: targetUrl,
          success: () => {
            console.log('跳转扫码结果页成功');
          },
          fail: (err) => {
            console.error('跳转扫码结果页失败:', err);
            wx.showToast({
              title: '跳转失败',
              icon: 'none'
            });
          }
        });
      },
      fail: (err) => {
        console.error('扫码失败', err);
        console.error('扫码失败详情:', {
          errMsg: err.errMsg,
          errCode: err.errCode
        });
        
        wx.showToast({
          title: '扫码失败，请重试',
          icon: 'none'
        });
      }
    });
  },
  
  // 分享给朋友
  onShareAppMessage: function() {
    return {
      title: '挪车小助手 - 让爱车沟通更便捷',
      path: '/pages/index/index',
      imageUrl: '/images/logo.png',
      desc: '扫码联系车主，创建专属挪车码，让停车沟通变得简单'
    };
  },
  
  // 分享到朋友圈
  onShareTimeline: function() {
    return {
      title: '挪车小助手 - 让爱车沟通更便捷',
      imageUrl: '/images/logo.png',
      query: ''
    };
  }
}); 